[INFO] cloning repository https://github.com/JadKHaddad/Rocust-JSON
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JadKHaddad/Rocust-JSON" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJadKHaddad%2FRocust-JSON", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJadKHaddad%2FRocust-JSON'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a5816e6731c7274e1b53902aa9c7f9b59e542a48
[INFO] fixing JadKHaddad/Rocust-JSON against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJadKHaddad%2FRocust-JSON" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/JadKHaddad/Rocust-JSON
[INFO] finished tweaking git repo https://github.com/JadKHaddad/Rocust-JSON
[INFO] tweaked toml for git repo https://github.com/JadKHaddad/Rocust-JSON written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/JadKHaddad/Rocust-JSON on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/JadKHaddad/Rocust-JSON already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7dd0ddec5a9f5aed483287794fddfff773c003de67d975f3bd747919c02febb7
[INFO] running `Command { std: "docker" "start" "7dd0ddec5a9f5aed483287794fddfff773c003de67d975f3bd747919c02febb7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7dd0ddec5a9f5aed483287794fddfff773c003de67d975f3bd747919c02febb7" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7dd0ddec5a9f5aed483287794fddfff773c003de67d975f3bd747919c02febb7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7dd0ddec5a9f5aed483287794fddfff773c003de67d975f3bd747919c02febb7" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating rocust_lib/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating rocust_cli/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating rocust_web/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating rocust_frontend/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating rocust_desktop/Cargo.toml from 2021 edition to 2024
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling proc-macro2 v1.0.43
[INFO] [stderr]    Compiling unicode-ident v1.0.3
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]    Compiling syn v1.0.99
[INFO] [stderr]    Compiling libc v0.2.132
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]     Checking once_cell v1.14.0
[INFO] [stderr]     Checking bytes v1.2.1
[INFO] [stderr]    Compiling serde_derive v1.0.144
[INFO] [stderr]     Checking itoa v1.0.3
[INFO] [stderr]    Compiling futures-core v0.3.24
[INFO] [stderr]    Compiling lock_api v0.4.8
[INFO] [stderr]    Compiling serde v1.0.144
[INFO] [stderr]     Checking smallvec v1.9.0
[INFO] [stderr]     Checking http v0.2.8
[INFO] [stderr]    Compiling generic-array v0.14.6
[INFO] [stderr]    Compiling tokio v1.21.0
[INFO] [stderr]     Checking parking_lot_core v0.9.3
[INFO] [stderr]    Compiling slab v0.4.7
[INFO] [stderr]    Compiling futures-task v0.3.24
[INFO] [stderr]    Compiling futures-channel v0.3.24
[INFO] [stderr]     Checking futures-sink v0.3.24
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]     Checking mio v0.8.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]     Checking socket2 v0.4.7
[INFO] [stderr]    Compiling futures-util v0.3.24
[INFO] [stderr]    Compiling pkg-config v0.3.25
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]     Checking tracing-core v0.1.29
[INFO] [stderr]     Checking futures-io v0.3.24
[INFO] [stderr]     Checking regex-syntax v0.6.27
[INFO] [stderr]     Checking percent-encoding v2.2.0
[INFO] [stderr]     Checking unicode-normalization v0.1.21
[INFO] [stderr]     Checking getrandom v0.2.7
[INFO] [stderr]     Checking form_urlencoded v1.1.0
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling openssl v0.10.41
[INFO] [stderr]     Checking ryu v1.0.11
[INFO] [stderr]     Checking cpufeatures v0.2.5
[INFO] [stderr]     Checking indexmap v1.9.1
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking httpdate v1.0.2
[INFO] [stderr]    Compiling openssl-sys v0.9.75
[INFO] [stderr]    Compiling native-tls v0.2.10
[INFO] [stderr]     Checking idna v0.3.0
[INFO] [stderr]     Checking try-lock v0.2.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking block-buffer v0.10.3
[INFO] [stderr]     Checking want v0.3.0
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]     Checking digest v0.10.3
[INFO] [stderr]     Checking num-traits v0.2.15
[INFO] [stderr]     Checking http-body v0.4.5
[INFO] [stderr]    Compiling uncased v0.9.7
[INFO] [stderr]     Checking mime v0.3.16
[INFO] [stderr]     Checking openssl-probe v0.1.5
[INFO] [stderr]     Checking sha-1 v0.10.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking dirs-sys-next v0.1.2
[INFO] [stderr]     Checking time v0.1.44
[INFO] [stderr]     Checking aho-corasick v0.7.19
[INFO] [stderr]     Checking url v2.3.1
[INFO] [stderr]    Compiling encoding_rs v0.8.31
[INFO] [stderr]    Compiling serde_json v1.0.85
[INFO] [stderr]    Compiling async-trait v0.1.57
[INFO] [stderr]     Checking regex-automata v0.1.10
[INFO] [stderr]     Checking utf-8 v0.7.6
[INFO] [stderr]     Checking iana-time-zone v0.1.47
[INFO] [stderr]     Checking chrono v0.4.22
[INFO] [stderr]     Checking dirs-next v2.0.0
[INFO] [stderr]     Checking sha1 v0.10.4
[INFO] [stderr]     Checking headers-core v0.2.0
[INFO] [stderr]     Checking csv-core v0.1.10
[INFO] [stderr]     Checking base64 v0.11.0
[INFO] [stderr]     Checking bytes v0.5.6
[INFO] [stderr]     Checking regex v1.6.0
[INFO] [stderr]     Checking itoa v0.4.8
[INFO] [stderr]     Checking headers v0.3.8
[INFO] [stderr]     Checking rfc7239 v0.1.0
[INFO] [stderr]     Checking term v0.7.0
[INFO] [stderr]     Checking tracing-log v0.1.3
[INFO] [stderr]     Checking sharded-slab v0.1.4
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking matchers v0.1.0
[INFO] [stderr]     Checking thread_local v1.1.4
[INFO] [stderr]     Checking encode_unicode v1.0.0
[INFO] [stderr]     Checking ipnet v2.5.0
[INFO] [stderr]     Checking typed-headers v0.2.0
[INFO] [stderr]     Checking ansi_term v0.12.1
[INFO] [stderr]     Checking unicode-width v0.1.9
[INFO] [stderr]     Checking rocust_frontend v0.1.0 (/opt/rustwide/workdir/rocust_frontend)
[INFO] [stderr]    Migrating rocust_frontend/src/main.rs from 2021 edition to 2024
[INFO] [stderr]     Checking rocust_desktop v0.1.0 (/opt/rustwide/workdir/rocust_desktop)
[INFO] [stderr]    Migrating rocust_desktop/src/main.rs from 2021 edition to 2024
[INFO] [stderr]    Compiling tokio-macros v1.8.0
[INFO] [stderr]    Compiling futures-macro v0.3.24
[INFO] [stderr]    Compiling tracing-attributes v0.1.22
[INFO] [stderr]    Compiling thiserror-impl v1.0.34
[INFO] [stderr]    Compiling openssl-macros v0.1.0
[INFO] [stderr]     Checking tracing v0.1.36
[INFO] [stderr]     Checking thiserror v1.0.34
[INFO] [stderr]     Checking tungstenite v0.17.3
[INFO] [stderr]     Checking tracing-subscriber v0.3.15
[INFO] [stderr]     Checking futures-executor v0.3.24
[INFO] [stderr]     Checking futures v0.3.24
[INFO] [stderr]     Checking tokio-util v0.7.3
[INFO] [stderr]     Checking tokio-native-tls v0.3.0
[INFO] [stderr]     Checking tokio-stream v0.1.9
[INFO] [stderr]     Checking tokio-tungstenite v0.17.2
[INFO] [stderr]     Checking h2 v0.3.14
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking bstr v0.2.17
[INFO] [stderr]     Checking csv v1.1.6
[INFO] [stderr]    Compiling toml v0.5.9
[INFO] [stderr]     Checking prettytable-rs v0.9.0
[INFO] [stderr]    Compiling proc-macro-crate v1.2.1
[INFO] [stderr]    Compiling poem-derive v1.3.41
[INFO] [stderr]     Checking hyper v0.14.20
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking poem v1.3.41
[INFO] [stderr]     Checking reqwest v0.11.11
[INFO] [stderr]     Checking rocust_lib v0.1.0 (/opt/rustwide/workdir/rocust_lib)
[INFO] [stderr]    Migrating rocust_lib/src/lib.rs from 2021 edition to 2024
[INFO] [stderr] error: errors present after applying fixes to crate `rocust_lib`
[INFO] [stderr]  --> rocust_lib/src/master.rs
[INFO] [stderr]  ::: rocust_lib/src/test.rs
[INFO] [stderr]   = cause: error: expected identifier
[INFO] [stderr]               --> rocust_lib/src/master.rs:469:71
[INFO] [stderr]                |
[INFO] [stderr]            469 | fn ws(ws: WebSocket, state: Data<&Arc<State>>) -> impl IntoResponse + use<> {
[INFO] [stderr]                |                                                                       ^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> rocust_lib/src/test.rs:330:19
[INFO] [stderr]                |
[INFO] [stderr]            329 |         for join_handle in user_join_handles {
[INFO] [stderr]                |                            -----------------
[INFO] [stderr]                |                            |
[INFO] [stderr]                |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                            `#1` will be dropped later as of Edition 2024
[INFO] [stderr]            330 |             match join_handle.await {
[INFO] [stderr]                |                   ^^^^^^^^^^^^-----
[INFO] [stderr]                |                   |           |
[INFO] [stderr]                |                   |           this value will be stored in a temporary; let us call it `#4`
[INFO] [stderr]                |                   |           up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]                |                   |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                |                   |           `#2` will be dropped later as of Edition 2024
[INFO] [stderr]                |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stderr]                |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]                |                   `__awaitee` calls a custom destructor
[INFO] [stderr]                |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stderr]            331 |                 Ok(_) => {}
[INFO] [stderr]            332 |                 Err(e) => {
[INFO] [stderr]                |                     -
[INFO] [stderr]                |                     |
[INFO] [stderr]                |                     `e` calls a custom destructor
[INFO] [stderr]                |                     `e` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            337 |         }
[INFO] [stderr]                |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `#4` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.21.0/src/runtime/task/join.rs:328:1
[INFO] [stderr]                |
[INFO] [stderr]            328 | impl<T> Drop for JoinHandle<T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.21.0/src/runtime/task/join.rs:328:1
[INFO] [stderr]                |
[INFO] [stderr]            328 | impl<T> Drop for JoinHandle<T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `__awaitee` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.21.0/src/runtime/task/join.rs:328:1
[INFO] [stderr]                |
[INFO] [stderr]            328 | impl<T> Drop for JoinHandle<T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]                = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 1 previous error; 1 warning emitted
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> rocust_lib/src/master.rs:513:45
[INFO] [stdout]     |
[INFO] [stdout] 513 |                     if let Ok(ws_message) = ControlWebSocketMessage::from_json(&text) {
[INFO] [stdout]     |                               ----------    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                               |             |
[INFO] [stdout]     |                               |             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                               |             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                               `ws_message` calls a custom destructor
[INFO] [stdout]     |                               `ws_message` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 528 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> rocust_lib/src/test/user.rs:273:1
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl Drop for User {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.3/src/sync/cancellation_token.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl Drop for CancellationToken {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ws_message` invokes this custom destructor
[INFO] [stdout]    --> rocust_lib/src/test/user.rs:273:1
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl Drop for User {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ws_message` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.3/src/sync/cancellation_token.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl Drop for CancellationToken {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> rocust_lib/src/master.rs:277:13
[INFO] [stdout]     |
[INFO] [stdout] 277 |             std::env::set_var("RUST_LOG", "poem=debug");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/newly-unsafe-functions.html>
[INFO] [stdout]     = note: `--force-warn deprecated-safe-2024` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code
[INFO] [stdout]     |
[INFO] [stdout] 277 +             // FIXME: Audit that the environment access only happens in single-threaded code.
[INFO] [stdout] 278 ~             unsafe { std::env::set_var("RUST_LOG", "poem=debug") };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> rocust_lib/src/test.rs:330:19
[INFO] [stdout]     |
[INFO] [stdout] 329 |         for join_handle in user_join_handles {
[INFO] [stdout]     |                            -----------------
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 330 |             match join_handle.await {
[INFO] [stdout]     |                   ^^^^^^^^^^^^-----
[INFO] [stdout]     |                   |           |
[INFO] [stdout]     |                   |           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                   |           up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   |           `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 331 |                 Ok(_) => {}
[INFO] [stdout] 332 |                 Err(e) => {
[INFO] [stdout]     |                     -
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `e` calls a custom destructor
[INFO] [stdout]     |                     `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 337 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.21.0/src/runtime/task/join.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.21.0/src/runtime/task/join.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.21.0/src/runtime/task/join.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl IntoResponse` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> rocust_lib/src/master.rs:468:51
[INFO] [stdout]     |
[INFO] [stdout] 468 | fn ws(ws: WebSocket, state: Data<&Arc<State>>) -> impl IntoResponse {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> rocust_lib/src/master.rs:468:34
[INFO] [stdout]     |
[INFO] [stdout] 468 | fn ws(ws: WebSocket, state: Data<&Arc<State>>) -> impl IntoResponse {
[INFO] [stdout]     |                                  ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]     = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 468 | fn ws(ws: WebSocket, state: Data<&Arc<State>>) -> impl IntoResponse + use<> {
[INFO] [stdout]     |                                                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]    --> rocust_lib/src/master.rs:513:24
[INFO] [stdout]     |
[INFO] [stdout] 513 |                     if let Ok(ws_message) = ControlWebSocketMessage::from_json(&text) {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^-----------------------------------------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout]     |
[INFO] [stdout]     = note: value may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> rocust_lib/src/test/user.rs:273:1
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl Drop for User {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.3/src/sync/cancellation_token.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl Drop for CancellationToken {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]    --> rocust_lib/src/master.rs:520:21
[INFO] [stdout]     |
[INFO] [stdout] 520 |                     } else {
[INFO] [stdout]     |                     ^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout]     = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021
[INFO] [stdout]     |
[INFO] [stdout] 513 ~                     match ControlWebSocketMessage::from_json(&text) { Ok(ws_message) => {
[INFO] [stdout] 514 |                         match ws_message {
[INFO] [stdout] ...
[INFO] [stdout] 519 |                         }
[INFO] [stdout] 520 ~                     } _ => {
[INFO] [stdout] 521 |                         state
[INFO] [stdout] 522 |                             .logger
[INFO] [stdout] 523 |                             .log_buffered(LogType::Error, &format!("Invalid message: {}", text));
[INFO] [stdout] 524 ~                     }}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]    --> rocust_lib/src/test/user.rs:146:16
[INFO] [stdout]     |
[INFO] [stdout] 146 |             if let Ok(response) = request.send().await {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^--------------------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout]     |
[INFO] [stdout]     = note: value may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.21.0/src/time/driver/entry.rs:631:1
[INFO] [stdout]     |
[INFO] [stdout] 631 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]    --> rocust_lib/src/test/user.rs:165:13
[INFO] [stdout]     |
[INFO] [stdout] 165 |             } else {
[INFO] [stdout]     |             ^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021
[INFO] [stdout]     |
[INFO] [stdout] 146 ~             match request.send().await { Ok(response) => {
[INFO] [stdout] 147 |                 let duration = start.elapsed();
[INFO] [stdout] ...
[INFO] [stdout] 164 |                 }
[INFO] [stdout] 165 ~             } _ => {
[INFO] [stdout] 166 |                 self.logger.log_buffered(
[INFO] [stdout] ...
[INFO] [stdout] 177 |                 self.add_endpoint_connection_error(endpoint);
[INFO] [stdout] 178 ~             }}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]     --> rocust_lib/src/worker.rs:56:12
[INFO] [stdout]      |
[INFO] [stdout]   56 |         if let Some(ref test) = *self.test.read() {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^----------------
[INFO] [stdout]      |                                  |
[INFO] [stdout]      |                                  this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout]      |
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.8/src/rwlock.rs:1330:1
[INFO] [stdout]      |
[INFO] [stdout] 1330 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]     --> rocust_lib/src/worker.rs:61:9
[INFO] [stdout]      |
[INFO] [stdout]   61 |         } else {
[INFO] [stdout]      |         ^
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021
[INFO] [stdout]      |
[INFO] [stdout]   56 ~         match *self.test.read() { Some(ref test) => {
[INFO] [stdout]   57 |             let agg_sent_results = test.clone_results().create_sent_results();
[INFO] [stdout]  ...
[INFO] [stdout]   60 |             Some(results_websocket_message)
[INFO] [stdout]   61 ~         } _ => {
[INFO] [stdout]   62 |             None
[INFO] [stdout]   63 ~         }}
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]    --> rocust_lib/src/worker.rs:135:32
[INFO] [stdout]     |
[INFO] [stdout] 135 | ...                   if let Ok(ws_message) = ControlWebSocketMessage::from_json(&text) {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^-----------------------------------------
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout]     |
[INFO] [stdout]     = note: value may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> rocust_lib/src/test/user.rs:273:1
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl Drop for User {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.3/src/sync/cancellation_token.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl Drop for CancellationToken {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]    --> rocust_lib/src/worker.rs:170:29
[INFO] [stdout]     |
[INFO] [stdout] 170 | ...                   } else {
[INFO] [stdout]     |                       ^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021
[INFO] [stdout]     |
[INFO] [stdout] 135 ~                             match ControlWebSocketMessage::from_json(&text) { Ok(ws_message) => {
[INFO] [stdout] 136 |                                 match ws_message {
[INFO] [stdout] ...
[INFO] [stdout] 169 |                                 }
[INFO] [stdout] 170 ~                             } _ => {
[INFO] [stdout] 171 |                                 self.logger.log_buffered(
[INFO] [stdout] ...
[INFO] [stdout] 174 |                                 );
[INFO] [stdout] 175 ~                             }}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: errors present after applying fixes to crate `rocust_lib`
[INFO] [stderr]  --> rocust_lib/src/master.rs
[INFO] [stderr]  ::: rocust_lib/src/test.rs
[INFO] [stderr]   = cause: error: expected identifier
[INFO] [stderr]               --> rocust_lib/src/master.rs:469:71
[INFO] [stderr]                |
[INFO] [stderr]            469 | fn ws(ws: WebSocket, state: Data<&Arc<State>>) -> impl IntoResponse + use<> {
[INFO] [stderr]                |                                                                       ^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> rocust_lib/src/test.rs:330:19
[INFO] [stderr]                |
[INFO] [stderr]            329 |         for join_handle in user_join_handles {
[INFO] [stderr]                |                            -----------------
[INFO] [stderr]                |                            |
[INFO] [stderr]                |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                            `#1` will be dropped later as of Edition 2024
[INFO] [stderr]            330 |             match join_handle.await {
[INFO] [stderr]                |                   ^^^^^^^^^^^^-----
[INFO] [stderr]                |                   |           |
[INFO] [stderr]                |                   |           this value will be stored in a temporary; let us call it `#4`
[INFO] [stderr]                |                   |           up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]                |                   |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                |                   |           `#2` will be dropped later as of Edition 2024
[INFO] [stderr]                |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stderr]                |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]                |                   `__awaitee` calls a custom destructor
[INFO] [stderr]                |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stderr]            331 |                 Ok(_) => {}
[INFO] [stderr]            332 |                 Err(e) => {
[INFO] [stderr]                |                     -
[INFO] [stderr]                |                     |
[INFO] [stderr]                |                     `e` calls a custom destructor
[INFO] [stderr]                |                     `e` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            337 |         }
[INFO] [stderr]                |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `#4` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.21.0/src/runtime/task/join.rs:328:1
[INFO] [stderr]                |
[INFO] [stderr]            328 | impl<T> Drop for JoinHandle<T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.21.0/src/runtime/task/join.rs:328:1
[INFO] [stderr]                |
[INFO] [stderr]            328 | impl<T> Drop for JoinHandle<T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `__awaitee` invokes this custom destructor
[INFO] [stderr]               --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.21.0/src/runtime/task/join.rs:328:1
[INFO] [stderr]                |
[INFO] [stderr]            328 | impl<T> Drop for JoinHandle<T> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]                = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 1 previous error; 1 warning emitted
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> rocust_lib/src/master.rs:513:45
[INFO] [stdout]     |
[INFO] [stdout] 513 |                     if let Ok(ws_message) = ControlWebSocketMessage::from_json(&text) {
[INFO] [stdout]     |                               ----------    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                               |             |
[INFO] [stdout]     |                               |             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                               |             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                               `ws_message` calls a custom destructor
[INFO] [stdout]     |                               `ws_message` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 528 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> rocust_lib/src/test/user.rs:273:1
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl Drop for User {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.3/src/sync/cancellation_token.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl Drop for CancellationToken {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ws_message` invokes this custom destructor
[INFO] [stdout]    --> rocust_lib/src/test/user.rs:273:1
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl Drop for User {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ws_message` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.3/src/sync/cancellation_token.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl Drop for CancellationToken {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> rocust_lib/src/master.rs:277:13
[INFO] [stdout]     |
[INFO] [stdout] 277 |             std::env::set_var("RUST_LOG", "poem=debug");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/newly-unsafe-functions.html>
[INFO] [stdout]     = note: `--force-warn deprecated-safe-2024` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code
[INFO] [stdout]     |
[INFO] [stdout] 277 +             // FIXME: Audit that the environment access only happens in single-threaded code.
[INFO] [stdout] 278 ~             unsafe { std::env::set_var("RUST_LOG", "poem=debug") };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> rocust_lib/src/test.rs:330:19
[INFO] [stdout]     |
[INFO] [stdout] 329 |         for join_handle in user_join_handles {
[INFO] [stdout]     |                            -----------------
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 330 |             match join_handle.await {
[INFO] [stdout]     |                   ^^^^^^^^^^^^-----
[INFO] [stdout]     |                   |           |
[INFO] [stdout]     |                   |           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                   |           up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   |           `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 331 |                 Ok(_) => {}
[INFO] [stdout] 332 |                 Err(e) => {
[INFO] [stdout]     |                     -
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `e` calls a custom destructor
[INFO] [stdout]     |                     `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 337 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.21.0/src/runtime/task/join.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.21.0/src/runtime/task/join.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.21.0/src/runtime/task/join.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl IntoResponse` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> rocust_lib/src/master.rs:468:51
[INFO] [stdout]     |
[INFO] [stdout] 468 | fn ws(ws: WebSocket, state: Data<&Arc<State>>) -> impl IntoResponse {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> rocust_lib/src/master.rs:468:34
[INFO] [stdout]     |
[INFO] [stdout] 468 | fn ws(ws: WebSocket, state: Data<&Arc<State>>) -> impl IntoResponse {
[INFO] [stdout]     |                                  ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]     = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 468 | fn ws(ws: WebSocket, state: Data<&Arc<State>>) -> impl IntoResponse + use<> {
[INFO] [stdout]     |                                                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]    --> rocust_lib/src/master.rs:513:24
[INFO] [stdout]     |
[INFO] [stdout] 513 |                     if let Ok(ws_message) = ControlWebSocketMessage::from_json(&text) {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^-----------------------------------------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout]     |
[INFO] [stdout]     = note: value may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> rocust_lib/src/test/user.rs:273:1
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl Drop for User {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.3/src/sync/cancellation_token.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl Drop for CancellationToken {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]    --> rocust_lib/src/master.rs:520:21
[INFO] [stdout]     |
[INFO] [stdout] 520 |                     } else {
[INFO] [stdout]     |                     ^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout]     = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021
[INFO] [stdout]     |
[INFO] [stdout] 513 ~                     match ControlWebSocketMessage::from_json(&text) { Ok(ws_message) => {
[INFO] [stdout] 514 |                         match ws_message {
[INFO] [stdout] ...
[INFO] [stdout] 519 |                         }
[INFO] [stdout] 520 ~                     } _ => {
[INFO] [stdout] 521 |                         state
[INFO] [stdout] 522 |                             .logger
[INFO] [stdout] 523 |                             .log_buffered(LogType::Error, &format!("Invalid message: {}", text));
[INFO] [stdout] 524 ~                     }}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]    --> rocust_lib/src/test/user.rs:146:16
[INFO] [stdout]     |
[INFO] [stdout] 146 |             if let Ok(response) = request.send().await {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^--------------------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout]     |
[INFO] [stdout]     = note: value may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.21.0/src/time/driver/entry.rs:631:1
[INFO] [stdout]     |
[INFO] [stdout] 631 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.2.1/src/bytes.rs:522:1
[INFO] [stdout]     |
[INFO] [stdout] 522 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]    --> rocust_lib/src/test/user.rs:165:13
[INFO] [stdout]     |
[INFO] [stdout] 165 |             } else {
[INFO] [stdout]     |             ^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021
[INFO] [stdout]     |
[INFO] [stdout] 146 ~             match request.send().await { Ok(response) => {
[INFO] [stdout] 147 |                 let duration = start.elapsed();
[INFO] [stdout] ...
[INFO] [stdout] 164 |                 }
[INFO] [stdout] 165 ~             } _ => {
[INFO] [stdout] 166 |                 self.logger.log_buffered(
[INFO] [stdout] ...
[INFO] [stdout] 177 |                 self.add_endpoint_connection_error(endpoint);
[INFO] [stdout] 178 ~             }}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]     --> rocust_lib/src/worker.rs:56:12
[INFO] [stdout]      |
[INFO] [stdout]   56 |         if let Some(ref test) = *self.test.read() {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^----------------
[INFO] [stdout]      |                                  |
[INFO] [stdout]      |                                  this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout]      |
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.8/src/rwlock.rs:1330:1
[INFO] [stdout]      |
[INFO] [stdout] 1330 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, R, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]     --> rocust_lib/src/worker.rs:61:9
[INFO] [stdout]      |
[INFO] [stdout]   61 |         } else {
[INFO] [stdout]      |         ^
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021
[INFO] [stdout]      |
[INFO] [stdout]   56 ~         match *self.test.read() { Some(ref test) => {
[INFO] [stdout]   57 |             let agg_sent_results = test.clone_results().create_sent_results();
[INFO] [stdout]  ...
[INFO] [stdout]   60 |             Some(results_websocket_message)
[INFO] [stdout]   61 ~         } _ => {
[INFO] [stdout]   62 |             None
[INFO] [stdout]   63 ~         }}
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]    --> rocust_lib/src/worker.rs:135:32
[INFO] [stdout]     |
[INFO] [stdout] 135 | ...                   if let Ok(ws_message) = ControlWebSocketMessage::from_json(&text) {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^-----------------------------------------
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout]     |
[INFO] [stdout]     = note: value may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> rocust_lib/src/test/user.rs:273:1
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl Drop for User {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.3/src/sync/cancellation_token.rs:88:1
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl Drop for CancellationToken {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]    --> rocust_lib/src/worker.rs:170:29
[INFO] [stdout]     |
[INFO] [stdout] 170 | ...                   } else {
[INFO] [stdout]     |                       ^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021
[INFO] [stdout]     |
[INFO] [stdout] 135 ~                             match ControlWebSocketMessage::from_json(&text) { Ok(ws_message) => {
[INFO] [stdout] 136 |                                 match ws_message {
[INFO] [stdout] ...
[INFO] [stdout] 169 |                                 }
[INFO] [stdout] 170 ~                             } _ => {
[INFO] [stdout] 171 |                                 self.logger.log_buffered(
[INFO] [stdout] ...
[INFO] [stdout] 174 |                                 );
[INFO] [stdout] 175 ~                             }}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rocust_cli v0.1.0 (/opt/rustwide/workdir/rocust_cli)
[INFO] [stderr]     Checking rocust_web v0.1.0 (/opt/rustwide/workdir/rocust_web)
[INFO] [stderr]    Migrating rocust_web/src/main.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating rocust_cli/src/main.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed rocust_cli/src/main.rs (1 fix)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 16s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: openssl v0.10.41
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr] crater-edition-check: rocust_lib v0.1.0 (/opt/rustwide/workdir/rocust_lib) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rocust_cli v0.1.0 (/opt/rustwide/workdir/rocust_cli) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rocust_web v0.1.0 (/opt/rustwide/workdir/rocust_web) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rocust_frontend v0.1.0 (/opt/rustwide/workdir/rocust_frontend) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rocust_desktop v0.1.0 (/opt/rustwide/workdir/rocust_desktop) updating edition from 2021 to 2024
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]     Checking rocust_desktop v0.1.0 (/opt/rustwide/workdir/rocust_desktop)
[INFO] [stderr]     Checking rocust_frontend v0.1.0 (/opt/rustwide/workdir/rocust_frontend)
[INFO] [stderr]     Checking rocust_lib v0.1.0 (/opt/rustwide/workdir/rocust_lib)
[INFO] [stdout] warning: unused import: `fs`
[INFO] [stdout]   --> rocust_lib/src/logger.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tokio::{fs, fs::OpenOptions, io::AsyncWriteExt};
[INFO] [stdout]    |             ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fs`
[INFO] [stdout]   --> rocust_lib/src/logger.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tokio::{fs, fs::OpenOptions, io::AsyncWriteExt};
[INFO] [stdout]    |             ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> rocust_lib/src/master.rs:277:13
[INFO] [stdout]     |
[INFO] [stdout] 277 |             std::env::set_var("RUST_LOG", "poem=debug");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
[INFO] [stdout]    --> rocust_lib/src/master.rs:277:13
[INFO] [stdout]     |
[INFO] [stdout] 277 |             std::env::set_var("RUST_LOG", "poem=debug");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rocust_lib` (lib) due to 1 previous error; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rocust_lib` (lib test) due to 1 previous error; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "7dd0ddec5a9f5aed483287794fddfff773c003de67d975f3bd747919c02febb7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7dd0ddec5a9f5aed483287794fddfff773c003de67d975f3bd747919c02febb7", kill_on_drop: false }`
[INFO] [stdout] 7dd0ddec5a9f5aed483287794fddfff773c003de67d975f3bd747919c02febb7
